package com.ctshk.rpc.ship.dto;

import com.ctshk.common.utils.anno.ColumnMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 船票产品信息req
 * </p>
 *
 * @author 刘蕾
 * @since 2021年03月05日
 */
@Data
@ApiModel(value = "ShipProductDetailDTO对象", description = "船票产品详情信息DTO")
public class ShipProductDetailDTO implements Serializable {

    private static final long serialVersionUID = 1L;


    private Long id;

    @ApiModelProperty(value = "产品编号")
    private String code;

    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票)")
    private String companyType;

    @ColumnMapping(fieldId = "companyType",mapping = {"1","信德船票","2","珠江船票"})
    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票)")
    private String companyTypeDesc;

    @ApiModelProperty(value = "航线id")
    private Long routeId;

    @ApiModelProperty(value = "航线名称")
    private String routeName;

    @ApiModelProperty(value = "航次码")
    private String voyage;

    @ApiModelProperty(value = "出发时间")
    private LocalDateTime depTimeStart;

    @ApiModelProperty(value = "到达时间")
    private LocalDateTime arrTimeStart;

    @ApiModelProperty(value = "出发地名称")
    private String depPlaceName;

    @ApiModelProperty(value = "到达地名称")
    private String arrPlaceName;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClass;

    @ApiModelProperty(value = "可售座位号(珠江船票)，多个逗号分隔")
    private String availableSeat;

    @ApiModelProperty(value = "供应商名称(信德船票)")
    private String supplierId;

    @ApiModelProperty(value = "供应商名称(信德船票)")
    private String supplierName;

    @ApiModelProperty(value = "产品来源")
    private Integer productSource;

    @ApiModelProperty(value = "产品来源 1手工产品 2API")
    @ColumnMapping(fieldId = "productSource",mapping = {"1","手工产品","2","API产品"})
    private String productSourceDesc;

    @ApiModelProperty(value = "负责人人员")
    private String chargeUserName;

    @ApiModelProperty(value = "适用人群id")
    private Long applicableCrowdId;

    @ApiModelProperty(value = "适用人群名称")
    private String applicableCrowdName;

    @ApiModelProperty(value = "打包状态（1：允许打包 2：不允许打包 3：只限打包）")
    private Integer packStatus;

    @ApiModelProperty(value = "打包状态（1：允许打包 2：不允许打包 3：只限打包）")
    @ColumnMapping(fieldId = "packStatus",mapping = {"1","允许打包","2","不允许打包","3","只限打包"})
    private String packStatusDesc;

    @ApiModelProperty(value = "开售时间")
    private LocalDateTime saleBeginDate;

    @ApiModelProperty(value = "是否二次确认")
    private Integer isConfirm;

    @ColumnMapping(fieldId = "isConfirm",mapping = {"0","否","1","是"})
    @ApiModelProperty(value = "是否二次确认")
    private String isConfirmDesc;

    @ApiModelProperty(value = "预订须知")
    private String bookingInformation;

    @ApiModelProperty(value = "退改列印内容")
    private String refundContent;

    @ApiModelProperty(value = "服务费(HKD)")
    private BigDecimal serviceChargePrice;

    @ApiModelProperty(value = "退改手续费(HKD)")
    private BigDecimal refundFeePrice;

    @ApiModelProperty(value = "税费与其他费用(HKD)")
    private BigDecimal otherFeePrice;

    @ApiModelProperty(value = "船票产品成本集合")
    private List<ShipProductCostDTO> shipProductCostList;


}
